package builder;

import java.util.Vector;

import model.Action;

public class StateAndStrategyBuilder extends AbstractPatternBuilder {

	private String context = "Context";
	private String abstractt = "Abstract";
	private String concrete1 = "Concrete1";
	private String concrete2 = "Concrete2";
	
	public StateAndStrategyBuilder() {
		super();
	}

	@Override
	public Vector<Action> buildPattern() {
		
		this.buildClass(context);
		this.buildClass(concrete1);
		this.buildClass(concrete2);
			
		this.buildAbstractClass(abstractt);
		
		this.buildGeneralization(concrete1, abstractt);
		this.buildGeneralization(concrete2, abstractt);
		
		this.buildAggregation(abstractt, context);
		
		return patternActions;
	}

	@Override
	public void changeNames() {

		context = names.get(0);
		abstractt = names.get(1);
		concrete1 = names.get(2);
		concrete2 = names.get(3);	
		
	}
	
	@Override
	public int cantUMLElements() {
		return 4;
	}

}
